package ro.upt.ac.cstaicu.instrumentation.logging;

import java.util.ArrayList;
import java.util.Collection;

import ro.upt.ac.cstaicu.analyze.Entity;
import ro.upt.ac.cstaicu.execution.TestResult;

public interface GlobalLogger {

	public abstract void testStarted(String className, String methodName);

	public abstract void startLogging(String fileName);

	public abstract void logPredicate(int predicateID, int opcode, int lineNo,
			boolean value);

	public abstract void logFunctionCall(String className, String methodName,
			ArrayList<MethodParameter> parameters);

	public abstract void functionEnded();

	public abstract void setRunningTime(long time);

	public abstract void setResult(TestResult result);

	public abstract Collection<Entity> endLogging();
	
	public abstract Collection<TestResult> getResults();

	public abstract void addAllEntities(Collection<Entity> tracedPredicates);

	public abstract void clearPredicates();

}